package com.platform.common.core.enums;

import com.platform.common.core.domain.export.*;
import com.platform.common.core.utils.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @Description: 数据导出映射
 * @Author: wcs
 * @Date: 2024-07-10 13:44
 **/
@Getter
@AllArgsConstructor
public enum ExportMappingEnum {

    /**
     * 国内出港收款 ok
     */
    GNC_CHECK_LIST_EXPORT(DepartGncCheckListExportDTO.class, "GNC_CHECK_LIST_EXPORT"),

    /**
     * 国内收款查询 ok
     */
    GNC_CHECK_QUERY_LIST_EXPORT(DepartGncCheckQueryListExportDTO.class, "GNC_CHECK_QUERY_LIST_EXPORT"),

    /**
     * 国内出结算管理导出 OK
     */
    GNC_SETTLE_LIST_EXPORT(DepartGncSettlementDTO.class, "GNC_SETTLE_LIST_EXPORT"),

    /**
     * 国内进出港收款 OK
     */
    GNJ_CHECK_LIST_EXPORT(DepartGnjCheckListExportDTO.class, "GNJ_CHECK_LIST_EXPORT"),

    /**
     * 国内进收款查询 OK
     */
    GNJ_CHECK_QUERY_LIST_EXPORT(DepartGnjCheckQueryListExportDTO.class, "GNJ_CHECK_QUERY_LIST_EXPORT"),

    /**
     * 国内进结算管理导出 ok
     */
    GNJ_SETTLE_LIST_EXPORT(DepartGnjSettlementDTO.class, "GNJ_SETTLE_LIST_EXPORT"),

    /**
     * 国际出 出港收款 OK
     */
    GJC_CHECK_LIST_EXPORT(DepartGjcCheckListExportDTO.class, "GJC_CHECK_LIST_EXPORT"),

    /**
     * 国际出 收款查询 OK
     */
    GJC_CHECK_QUERY_LIST_EXPORT(DepartGjcCheckQueryListExportDTO.class, "GJC_CHECK_QUERY_LIST_EXPORT"),

    /**
     * 国际出结算管理导出 OK
     */
    GJC_SETTLE_LIST_EXPORT(DepartGjcSettlementDTO.class, "GJC_SETTLE_LIST_EXPORT"),

    /**
     * 国际进出港收款 OOK
     */
    GJJ_CHECK_LIST_EXPORT(DepartGjjCheckListExportDTO.class, "GJJ_CHECK_LIST_EXPORT"),

    /**
     * 国际进收款查询 OK
     */
    GJJ_CHECK_QUERY_LIST_EXPORT(DepartGjjCheckQueryListExportDTO.class, "GJJ_CHECK_QUERY_LIST_EXPORT"),

    /**
     * 国际进结算管理导出 OK
     */
    GJJ_SETTLE_LIST_EXPORT(DepartGjjSettlementDTO.class, "GJJ_SETTLE_LIST_EXPORT"),

    /**
     * 计费中心 汇总收款 ok
     */
    FEE_CHECK_LIST_EXPORT(DepartFeeCheckExportDTO.class, "FEE_CHECK_LIST_EXPORT"),

    /**
     * 计费中心 收款查询 ok
     */
    FEE_CHECK_QUERY_LIST_EXPORT(DepartFeeCheckQueryExportDTO.class, "FEE_CHECK_QUERY_LIST_EXPORT"),

    /**
     * 计费中心 结算管理
     */
    FEE_SETTLE_LIST_EXPORT(DepartFeeSettlementDTO.class, "FEE_SETTLE_LIST_EXPORT");

    private final Class<?> clazz;

    private final String exportCode;

    public static Class<?> getExportClazzByCode(String code) {
        for (ExportMappingEnum value : ExportMappingEnum.values()) {
            if (StringUtils.equals(code, value.getExportCode())) {
                return value.getClazz();
            }
        }
        return null;
    }
}
